// pages/detail/index.js
let bool = true //限制用户频繁点击收藏按钮
Page({
  data: {
    courseDetail:null,
    isCollect:false  //标志收藏状态
  },
  onLoad(options) {
    // 渲染详情数据
    wx.getStorage({
      key:'detail',
      success:(res)=>{
        console.log('详情',res)
        this.setData({courseDetail:res.data})

        // 查看收藏状态
        this.checkCollectStatus(res.data._id)
      }
    })
    
  },
  
  async checkCollectStatus(courseId){
    // courseId，提取userId
    let userId = getApp().userinfo?.openid
    console.log('详情页查看App对象',userId,getApp());
    let res = await getApp().db.collection('collect').where({
      courseId,userId
    }).get()
    console.log('收藏状态查询结果',res);
    if(res.data.length){
      this.setData({isCollect:true})
    }
  },

  // 处理收藏按钮的点击行为
  handleCollectCancel(){
    if(bool){
      bool = false
      if(this.data.isCollect){
        this.handleCancel() // 取消收藏
      }else{
        this.handleCollect() // 收藏
      }
    }
  },

  // 取消收藏
  async handleCancel(){
    let userId = getApp().userinfo?.openid
    let courseId = this.data.courseDetail._id
    let res = getApp().db.collection('collect').where({
      courseId,userId
    }).remove()
    this.setData({isCollect:false},()=>{
      bool = true
    })
    wx.showToast({
      title: '取消成功',
      icon:'none'
    })
    console.log('取消收藏结果',res);
  },

  //收藏函数
  handleCollect(){
    // 1. 获取用户id
    wx.getStorage({
      key:'userinfo',
      success:async (info)=>{
        console.log('用户已经登录',info);
        let userId = info.data.openid
        // 2. 获取被收藏的数据（课程id及其他）
        let {_id,cover_image,title} = this.data.courseDetail
        // 3. 将完整的数据加入收藏表
        let res = await getApp().db.collection('collect').add({
          data:{userId,courseId:_id,cover_image,title}
        })
        // 4. 提示收藏状态
        this.setData({isCollect:true},()=>{
          bool = true
        })
        wx.showToast({
          title: '收藏成功',
          icon:'none'
        })

      },
      fail:(err)=>{
        console.log('用户未登录',err);
        wx.showModal({
          title: '登录后才能操作',
          content: '是否跳转至个人中心进行授权登录？',
          complete: (res) => {
            if (res.cancel) {
              console.log('取消');
            }
            if (res.confirm) {
              console.log('确认');
              wx.switchTab({
                url: '/pages/mine/index',
              })
            }
          }
        })
      }
    })

    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})